/*
 * @lc app=leetcode.cn id=5 lang=javascript
 *
 * [5] 最长回文子串
 *
 * https://leetcode-cn.com/problems/longest-palindromic-substring/description/
 *
 * algorithms
 * Medium (24.33%)
 * Total Accepted:    37.3K
 * Total Submissions: 153.1K
 * Testcase Example:  '"babad"'
 *
 * 给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
 *
 * 示例 1：
 *
 * 输入: "babad"
 * 输出: "bab"
 * 注意: "aba" 也是一个有效答案。
 *
 *
 * 示例 2：
 *
 * 输入: "cbbd"
 * 输出: "bb"
 *
 *
 */
/**
 * @param {string} s
 * @return {string}
 */
function longestPalindrome(s, pre) {
  if (!pre) {
    pre = s.substr(0, 1)
  }
  if (s.length <= 1 || s.length < pre.length) {
    return pre
  } else {
    const reversedStr = s
      .split('')
      .reverse()
      .join('')
    let len = s.length
    let maxLen = 1
    while (len > 1) {
      let ss = s.substr(0, len)
      let rs = reversedStr.substr(s.length - len)
      if (ss === rs) {
        maxLen = len
        break
      }
      len--
    }
    let maxRStr = s.substr(0, maxLen)
    return longestPalindrome(
      s.substr(1),
      maxRStr.length > pre.length ? maxRStr : pre,
    )
  }
}

// abcd
// dcba
